/*
 * TacticaDemo01.java
 *
 * Created on 16 de julio de 2006, 13:20
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package futbol.tacticas.concursantes2007.SeteTeam;

import futbol.tacticas.*;
import futbol.tacticas.concursantes.Tactica;
import futbol.tacticas.concursantes2007.SeteTeam.jugadores.AbstractTacticaJugador;
import futbol.tacticas.concursantes2007.SeteTeam.jugadores.facklab.*;

import java.awt.Color;
import java.awt.geom.Rectangle2D;
import java.util.Vector;

/**
 *
 * @author Administrador
 */
public class TacticaFacklab implements Tactica{
    
	//Instanciacion del entrnador en cual es unico
	private final transient Entrenador entrenador = new Entrenador();
	
	//Array de Jugadores
	
	// He puesto las posiciones de mis antiguos jugadores
	
	private final transient AbstractTacticaJugador jugadores[] = {
			new TacticaPortero         ( 0, 6, entrenador),

			new TacticaDefensa(    Entrenador.DEF_BAJO, -85, -80, 5, new Rectangle2D.Double(-160,-120,160,80), entrenador), // DEFENSA
			new TacticaDefensa(Entrenador.DEF_MED_BAJO, -65, -20, 7, new Rectangle2D.Double(-160, -45,160,45), entrenador), // DEFENSA
			new TacticaDefensa(Entrenador.DEF_MED_ALTO, -65,  20, 7, new Rectangle2D.Double(-160,  -5,160,45), entrenador), // DEFENSA
			new TacticaDefensa(    Entrenador.DEF_ALTO, -80,  80, 5, new Rectangle2D.Double(-160,  30,160,80), entrenador), // DEFENSA

			new TacticaCentroBajo      ( -40,  90, 6, entrenador), // CENTRO BAJO
			new TacticaCentroMedioBajo ( -10,  40, 6, entrenador), // DELANTERO MEDIO BAJO
			new TacticaCentroMedioAlto ( -10, -40, 7, entrenador), // DELANTERO MEDIO ALTO
			new TacticaCentroAlto      ( -40, -90, 6, entrenador), // CENTRO ALTO

			new TacticaDelanteroBajo   (  10,  20, 7, entrenador), // DELANTERO BAJO
			new TacticaDelanteroAlto   (  10, -20, 7, entrenador), // DELANTERO ALTO
	};

    public String getNombre(){
        return "Sete Team";
    }
    
    public Color getColor1(){
        return new Color(00,51,153);
    }
    
    public Color getColor2(){
        return new Color(00,51,153);//Color(204,204,255);
    }
    
    public Color getColorNumero(){
        return Color.white;
    }
    
    public int getFuerza(int n){
        return jugadores[n].getFuerza();
    }
    public int getXInicial(int n){
        return jugadores[n].getXInicial();
    }
    
    public int getYInicial(int n){
        return jugadores[n].getYInicial();
    }
    
    
    public Vector<Comando> getComandos(final SituacionJugadores situacion){
    	final Vector<Comando> comandos= new Vector<Comando>();
    	//Cada iteracion el entrador recibe la situacion para hacer
    	//los calculos pertinentes
    	entrenador.setSituacion(situacion);
    	
    	//Bucle que recorre uno por uno todos los jugadores para que
    	//generen su tactica
    	for (AbstractTacticaJugador jugador : jugadores) {
			jugador.generarTactica(comandos);
		}
        
    	return comandos;
    }
    
}
